package com.baomibing.flow.service;

import com.baomibing.flow.dto.SysFlowDto;
import com.baomibing.flow.execute.Execution;
import com.baomibing.flow.model.WorkFlow;

import java.util.Map;

public interface WorkFlowEnginee {

    SysFlowDto deploy(WorkFlow flow);

    String doStartFlow(String flowId, Execution execution);

    String doStartFlowWithBusinessKey(String flowId, String businessKey, Execution execution);

    void doBindBusinessKey(String instanceId, String businessKey);

    WorkFlow doExecute(String instanceId, String name, Execution execution);

    WorkFlow doExecute(String instanceId, Map<String, Execution> executionMap);

    WorkFlow doReject(String instanceId, String name, Execution execution);

    WorkFlow doReject(String instanceId, Map<String, Execution> executionMap);
}
